5 research outputs found

    Entwicklung eines rationalen Entscheidungsprozesses für Architekturentscheidungen

    Get PDF
    AbstractIt is one of the critical tasks to make the right design- and architectural-decisions in huge and complex developing or reengineering projects. Such decisions have different types. On the one hand there are decisions with minimal effects on the architecture and the software system. On the other hand there are more strategic decisions which effect the architecture widely and change the central characteristics of the software system. Particularly the strategic decisions are very complex, risky and include many uncertain facts about hidden dependencies. The complexity and risks rise if such decisions have to be made in huge projects with 50 or more developers. The decisionmaker, mostly the project manager or the client, is confronted with various factors, assumptions and constraints. Typical examples are competing objectives, alternative solutions and incomplete information about external third-party systems. If such complex decisions have to be made in an unsystematic way, they will lead to uncalculatable risks with enormous bad consequences for the software system and the development project. Examples are changed or missed deadlines, risen development costs or monetary losses due to an outage of a business critical system.However, the specific characteristics of architectural decisions are not considered by existing methods and concepts to support decision making. They are too detailed, focussed on source code and require information in a formal quality and completeness. These information can not be gathered within such huge projects because of the high effort, time pressure and lacking resources. Therefore an architectural decision process is missing to structure the various information, assumptions and subjective estimations and so you can make such complex and risky decisions in a systematic and focussed way.The main objective of the following dissertation is to reduce the complexity, uncertainty and risks of architectural decisions in order to avoid additional changes and adjustments as well as to achieve the desired objectives. An architectural decision process with four phases is developed on the basis of the generic proceeding of the decision theory. This process includes methods and concepts in order to establish alternative solutions on the basis of the objectives, conditions and the model of the existing architecture. The various alternative solutions are evaluated through a systematic proceeding in order to identify and select the best solution. The developed process includes the specific characteristics of software architectures:Besides incomplete information and uncertainties, it is possible to observe hidden dependencies through scenario-based analysis methods, establishted by the concepts of the Architecture-Level-Modifiability-Analysis (ALMA).Due to the complexity and risks, huge architectural changes have to be separated into smaller tasks. This is supported by a stepped planning, from abtract analysis to more detailed planning.To achieve a reasonable relation between the analysis effort and the benefis from the analysis in terms of reduced risks, complexity and uncertainty, the depths of the analysis can be adjusted flexibly by clear objectives. Two practical applications show, how to make architectural decisions in a systematic way by using the decision process. Afterwards, the assumptions and expectations, which have been used for the decision making, are evaluated by comparing with the consequences of the real implementation. Due to the results of the comparison it can be described clearly, which advantages and disadvantages the application of the decision process has.In Softwareentwicklungsprozessen müssen permanent die richtigen Design- und Architekturentscheidungen getroffen werden, damit die mit dem Entwicklungs- oder Reengineeringprojekt verbundenen Ziele in vollem Umfang erfüllt werden können. Diese Entscheidungen können dabei von unterschiedlicher Natur sein. So werden einerseits Entscheidungen getroffen, die nur geringe Auswirkungen auf das Softwaresystem haben. Auf der anderen Seite existieren Entscheidungen mit strategischem Charakter, die sich auf große Teile der Architektur und auf zentrale Systemeigenschaften auswirken. Gerade die strategischen Architekturentscheidungen sind in Großprojekten mit 50 oder mehr Entwicklern von hoher kombinatorischer Komplexität und beinhalten große Unsicherheiten über versteckte Abhängigkeiten. Der Entscheidungsträger, meist der Architekt oder der Projektleiter, ist mit einer Vielzahl unterschiedlicher Faktoren und Bedingungen konfrontiert. Hierzu zählen konkurrierende Ziele oder alternative Lösungsansätze, für die meist nur unvollständige Informationen vorliegen. Unter diesen Voraussetzungen führen unsystematische Entscheidungen zu unkalkulierbaren Risiken mit gravierenden Folgen für das Softwaresystem und das Entwicklungsprojekt, wie z. B. eine deutliche Erhöhung der Entwicklungskosten oder zeitliche Verzögerungen. Die bereits existierenden Methoden zur Entscheidungsunterstützung berücksichtigen die spezifischen Eigenschaften von Softwarearchitekturen zu wenig. Sie sind zu feingranular, codeorientiert und benötigen Informationen in einer formalen Genauigkeit und Vollständigkeit, die bei Architekturentscheidungen in Großprojekten aus Aufwandsgründen nicht erhoben werden können. Somit fehlt eine Unterstützung des Entscheidungsträgers, um die Vielzahl an Einzelinformationen und subjektiven Einschätzungen zu strukturieren sowie die Entscheidungsfindung systematisch und fokussiert durchzuführen. Mit der vorliegenden Dissertation wird das Ziel verfolgt, die Komplexität, Unsicherheiten und Risiken bei Architekturentscheidungen zu reduzieren, um aufwandsintensive Korrekturen zu vermeiden und die Architekturziele in vollem Umfang zu erfüllen. Auf der Grundlage des in der Entscheidungstheorie beschriebenen generischen Vorgehens zur Entscheidungsfindung wird ein Vier-Phasen-Entscheidungsprozess entwickelt. Dieser Prozess beinhaltet Methoden und Konzepte, um ausgehend von den Zielen, Rahmenbedingungen und der existierenden Architektur systematisch alternative Lösungsansätze zu entwickeln. Im Anschluss werden die Lösungsansätze nach rationalen Gesichtspunkten im Hinblick auf die Zielerreichung bewertet, um eine ausgewogene Entscheidung zu treffen. Der entwickelte Entscheidungsprozess berücksichtigt dabei die speziellen Eigenschaften von Softwarearchitekturen: Trotz unvollständiger Informationen und Unsicherheiten können versteckte Abhängigkeiten mit einem szenariobasierten Analyse- und Bewertungsansatz, auf der Grundlage der Architecture-Level-Modifiability-Analysis (ALMA), sichtbar gemacht werden. Die systematische Aufteilung komplexer Entscheidungen in handhabbare Einzelentscheidungen wird durch die Anwendung eines gestuften Verfahrens mit Grob- und Feinplanung erreicht.Um ein ökonomisch sinnvolles Verhältnis zwischen dem Aufwand zur Entscheidungsfindung und dem Nutzen in Form von reduzierten Risiken, Unsicherheiten und einer geringeren Komplexität zu ermöglichen, kann die Detailtiefe der Analysen anhand eindeutiger Kriterien flexibel angepasst werden.Zwei praktische prototypische Anwendungen des Entscheidungsprozesses zeigen auf, wie eine Architekturentscheidung systematisch und nach rationalen Gesichtspunkten durchgeführt werden kann. Die während der Entscheidungsfindung getroffenen Annahmen und Erwartungen werden im Anschluss mit den Ergebnissen der realen Implementierung verglichen. Anhand des Vergleichs wird klar erkennbar, welche versteckten Abhängigkeiten durch den Einsatz des Entscheidungsprozesses bereits frühzeitig erkannt wurden sowie welche Vorteile die richtige Entscheidungsfindung für das Softwaresystem und das Entwicklungsprojekt hat

    Modelling nonlinear dynamics of interacting tipping elements on complex networks: the PyCascades package

    Get PDF
    Tipping elements occur in various systems such as in socio-economics, ecology and the climate system. In many cases, the individual tipping elements are not independent of each other, but they interact across scales in time and space. To model systems of interacting tipping elements, we here introduce the PyCascades open source software package for studying interacting tipping elements (https://doi.org/10.5281/zenodo.4153102). PyCascades is an object-oriented and easily extendable package written in the programming language Python. It allows for investigating under which conditions potentially dangerous cascades can emerge between interacting dynamical systems, with a focus on tipping elements. With PyCascades it is possible to use different types of tipping elements such as double-fold and Hopf types and interactions between them. PyCascades can be applied to arbitrary complex network structures and has recently been extended to stochastic dynamical systems. This paper provides an overview of the functionality of PyCascades by introducing the basic concepts and the methodology behind it. In the end, three examples are discussed, showing three different applications of the software package. First, the moisture recycling network of the Amazon rainforest is investigated. Second, a model of interacting Earth system tipping elements is discussed. And third, the PyCascades modelling framework is applied to a global trade network

    Verbesserung des Wissensmanagements durch Einführung einer Intranet-Plattform: Ein Erfahrungsbericht

    Get PDF
    Unser professionelles Selbstverständnis als Informationsspezialisten, der schnelle Wandel der Aufgaben und Strukturen in Bibliotheken sowie die zunehmende inhaltliche und technische Komplexität der Informationsangebote in unserer Wissensgesellschaft erfordern neue Methoden und Werkzeuge, um das vorhandene und neu entstehende Wissen effizient zu dokumentieren und zu teilen. Neue Methoden und Werkzeuge ermöglichen es auch, das Dienstleistungsspektrum in unserer Branche dynamisch an den Bedarf unserer Nutzer anzupassen. Damit die Schnelligkeit der Veränderungen nicht zu einem (Zusammen-)Bruch der historisch und kultursoziologisch bedeutsamen Institution „Bibliothek“ führt, müssen möglichst viele Mitarbeiterinnen und Mitarbeiter in die Lage versetzt werden, den Wandel nachzuvollziehen und aktiv mitzugestalten. Transparenz und Interaktion gewinnen an Bedeutung, weil sich das nötige Wissen für Entscheidungsfindungen auf immer mehr Köpfe verteilt. Die Spezialisierung steigt und gleichzeitig erfordert das Dienstleisten für die Wissensgesellschaft eine hohe Vernetzung der verschiedenen Aufgabenbereiche. Rundschreiben per EMail, mündliche Kommunikation, Aktenordner und selbst Wiki-Software kommen hier schnell an ihre Grenzen. An der Einführung moderner Werkzeuge zum Wissensmanagement in Bibliotheken führt deshalb kein Weg vorbei. Die SLUB Dresden hat im Oktober 2012 eine Intranet-Plattform auf Basis der Software Confluence eingeführt. In diesem Artikel werden die Erfahrungen bei der Lösungssuche und Evaluation und schließlich bei der Einführung eines mit Social-Network-Funktionen ausgestatteten Intranets beschrieben. Das „soziale“ Intranet dient auch als Grundlage eines umfassenden Enterprise Content Managements. [...

    Modelling nonlinear dynamics of interacting tipping elements on complex networks: the PyCascades package

    Get PDF
    Tipping elements occur in various systems such as in socio-economics, ecology and the climate system. In many cases, the individual tipping elements are not independent of each other, but they interact across scales in time and space. To model systems of interacting tipping elements, we here introduce the PyCascades open source software package for studying interacting tipping elements (https://doi.org/10.5281/zenodo.4153102). PyCascades is an object-oriented and easily extendable package written in the programming language Python. It allows for investigating under which conditions potentially dangerous cascades can emerge between interacting dynamical systems, with a focus on tipping elements. With PyCascades it is possible to use different types of tipping elements such as double-fold and Hopf types and interactions between them. PyCascades can be applied to arbitrary complex network structures and has recently been extended to stochastic dynamical systems. This paper provides an overview of the functionality of PyCascades by introducing the basic concepts and the methodology behind it. In the end, three examples are discussed, showing three different applications of the software package. First, the moisture recycling network of the Amazon rainforest is investigated. Second, a model of interacting Earth system tipping elements is discussed. And third, the PyCascades modelling framework is applied to a global trade network
    corecore